Conventional techniques of communicating packets through a network can employ multiport virtual switches, particularly for Layer 2 routing. Conventional multiport virtual switches typically have a plurality of logical ports (hereinafter “ports”) interconnected by a fabric that can connect any port to any other of the ports. Sources and destinations of packets, which can be termed “devices,” can have a unique identifier, for example, a Media Access Control (MAC) address. Packets may include the MAC address of their originating or source device and the MAC address of the intended receiving or destination device. Conventional virtual switches generally include an identifier for each of the ports, and a mechanism for associating or “binding” the source MAC address of packets to the particular port number at which the packet is received.
Conventional techniques for routing or forwarding received packets having a destination MAC address to the port the address is bound include constructing a forwarding table, for example, a Forwarding Information Base (FIB) having the required information, then distributing the FIB to each of the ports. More specifically, each port's local FIB stores a plurality of MAC addresses and, for each, the port (e.g., the port number) to which that address is bound. Therefore, when a port receives a packet having a destination MAC address already in the FIB, it retrieves the number of the port to which that address is bound, and then sends the packet to the fabric with that port number. The fabric, in response, forwards the packet to the identified port.
Ports of a virtual switch, however, can receive packets with a source or destination MAC address not currently in their local FIB. Example reasons are devices being connected and disconnected, being assigned new MAC addresses, or going for extended periods without transmitting packets. If MAC learning is supported, then a port receiving such a packet with an unknown source MAC can respond by, for example, notifying a controller that maintains a master FIB. The controller, in response, can “flood” the ports of the virtual switch to identify which, if any, the “new” destination MAC address is bound to. If the port is identified, the controller can update the master FIB and distribute that update to the local FIB at each of the ports. A port receiving a packet with an unknown destination MAC may send the packet to all the other ports in the virtual switch.
Known conventional techniques of implementing virtual switches include one or more devices such as line cards, modules, circuit packs, blades, pizza boxes (hereinafter referred to as line cards), each providing one or more of the ports, along with storage for the port's local FIB. A conventional line card can also include logic for interfacing with the fabric, for example, through a backplane. The fabric may be implemented as one or more fabric cards or switch cards connected through the backplane.
However, line cards can fail. One conventional technique for providing for recovery from such failure is maintaining one or more spare or stand-by line cards. One such technique maintains one or more spare or stand-by line cards in a “hot standby” state connected to the fabric. The connected state provides for updating the FIB of such stand-by line cards by the master FIB, which sees the connected standby line card as just another of the connected, operational line cards. However, maintaining stand-by line cards in a connected state can incur significant cost, namely an idle resource consuming system resources. Specifically, maintaining stand-by line cards in a connected state adds to the multicast load of a fabric. Multicast is expensive and consumes scarce fabric resources.
Another conventional technique can maintain one or more standby line cards in a disconnected, cold state. This conventional technique can eliminate or substantially reduce the system resource cost of maintaining a standby, connected line card. However, boot-up operations necessary to bring that disconnected, cold state line card to an operational state include the loading of its local FIB, to mirror the current master FIB. This can incur significant cost in system resources and time.
Another known conventional technique providing recovery from line card failure is fast packet switching/reroute by a higher layer of the network, for example, Layer 3. However, this technique can require substantial action, and expenditure of time, by higher-level resources. Also, the fast packet switching/reroute can result in additional multicast, which is expensive and consumes scarce fabric resources.